Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement EIP-7742 #7232

Draft
wants to merge 2 commits into
base: unstable
Choose a base branch
from
Draft

feat: implement EIP-7742 #7232

wants to merge 2 commits into from

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Nov 19, 2024

Closes #7176

Copy link

codecov bot commented Nov 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 49.08%. Comparing base (6039f58) to head (0c34c20).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7232      +/-   ##
============================================
- Coverage     49.08%   49.08%   -0.01%     
============================================
  Files           600      600              
  Lines         40241    40242       +1     
  Branches       2110     2103       -7     
============================================
- Hits          19753    19752       -1     
- Misses        20450    20452       +2     
  Partials         38       38              
---- 🚨 Try these New Features:

Copy link
Contributor

github-actions bot commented Nov 19, 2024

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 3ea1cc9 Previous: 25c2ee5 Ratio
findModifiedValidators - 1000 modified validators 539.68 ms/op 165.93 ms/op 3.25
findModifiedValidators - 1 modified validators 425.03 ms/op 137.65 ms/op 3.09
Full benchmark results
Benchmark suite Current: 3ea1cc9 Previous: 25c2ee5 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1895 ms/op 1.9392 ms/op 1.13
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 72.622 us/op 43.709 us/op 1.66
BLS verify - blst 1.0646 ms/op 758.45 us/op 1.40
BLS verifyMultipleSignatures 3 - blst 1.5953 ms/op 1.1392 ms/op 1.40
BLS verifyMultipleSignatures 8 - blst 2.1959 ms/op 1.6111 ms/op 1.36
BLS verifyMultipleSignatures 32 - blst 6.3061 ms/op 4.7233 ms/op 1.34
BLS verifyMultipleSignatures 64 - blst 10.860 ms/op 8.8395 ms/op 1.23
BLS verifyMultipleSignatures 128 - blst 19.944 ms/op 16.762 ms/op 1.19
BLS deserializing 10000 signatures 727.12 ms/op 667.45 ms/op 1.09
BLS deserializing 100000 signatures 7.2878 s/op 6.8311 s/op 1.07
BLS verifyMultipleSignatures - same message - 3 - blst 1.1036 ms/op 941.34 us/op 1.17
BLS verifyMultipleSignatures - same message - 8 - blst 1.1611 ms/op 1.0598 ms/op 1.10
BLS verifyMultipleSignatures - same message - 32 - blst 1.8655 ms/op 1.7221 ms/op 1.08
BLS verifyMultipleSignatures - same message - 64 - blst 2.8557 ms/op 2.6352 ms/op 1.08
BLS verifyMultipleSignatures - same message - 128 - blst 4.7652 ms/op 4.4194 ms/op 1.08
BLS aggregatePubkeys 32 - blst 21.411 us/op 19.713 us/op 1.09
BLS aggregatePubkeys 128 - blst 73.898 us/op 70.130 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 82.219 ms/op 52.783 ms/op 1.56
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 62.303 ms/op 61.743 ms/op 1.01
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 53.240 ms/op 38.793 ms/op 1.37
getSlashingsAndExits - default max 136.76 us/op 98.766 us/op 1.38
getSlashingsAndExits - 2k 383.98 us/op 350.39 us/op 1.10
proposeBlockBody type=full, size=empty 7.4146 ms/op 6.5631 ms/op 1.13
isKnown best case - 1 super set check 637.00 ns/op 329.00 ns/op 1.94
isKnown normal case - 2 super set checks 552.00 ns/op 336.00 ns/op 1.64
isKnown worse case - 16 super set checks 517.00 ns/op 303.00 ns/op 1.71
InMemoryCheckpointStateCache - add get delete 3.8340 us/op 3.0060 us/op 1.28
updateUnfinalizedPubkeys - updating 10 pubkeys 623.50 us/op 968.09 us/op 0.64
updateUnfinalizedPubkeys - updating 100 pubkeys 4.7886 ms/op 3.6743 ms/op 1.30
updateUnfinalizedPubkeys - updating 1000 pubkeys 62.840 ms/op 52.970 ms/op 1.19
validate api signedAggregateAndProof - struct 1.7956 ms/op 1.3824 ms/op 1.30
validate gossip signedAggregateAndProof - struct 1.6538 ms/op 1.4387 ms/op 1.15
batch validate gossip attestation - vc 640000 - chunk 32 153.42 us/op 123.57 us/op 1.24
batch validate gossip attestation - vc 640000 - chunk 64 136.19 us/op 108.26 us/op 1.26
batch validate gossip attestation - vc 640000 - chunk 128 132.39 us/op 109.69 us/op 1.21
batch validate gossip attestation - vc 640000 - chunk 256 129.00 us/op 103.58 us/op 1.25
pickEth1Vote - no votes 1.1991 ms/op 1.1594 ms/op 1.03
pickEth1Vote - max votes 11.758 ms/op 7.0794 ms/op 1.66
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.043 ms/op 17.201 ms/op 0.99
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 28.294 ms/op 22.483 ms/op 1.26
pickEth1Vote - Eth1Data fastSerialize value x2048 632.33 us/op 539.55 us/op 1.17
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.9959 ms/op 5.0929 ms/op 0.98
bytes32 toHexString 636.00 ns/op 435.00 ns/op 1.46
bytes32 Buffer.toString(hex) 280.00 ns/op 255.00 ns/op 1.10
bytes32 Buffer.toString(hex) from Uint8Array 483.00 ns/op 358.00 ns/op 1.35
bytes32 Buffer.toString(hex) + 0x 284.00 ns/op 251.00 ns/op 1.13
Object access 1 prop 0.19200 ns/op 0.14000 ns/op 1.37
Map access 1 prop 0.15300 ns/op 0.13200 ns/op 1.16
Object get x1000 6.4810 ns/op 5.8530 ns/op 1.11
Map get x1000 6.9720 ns/op 6.3010 ns/op 1.11
Object set x1000 48.257 ns/op 45.077 ns/op 1.07
Map set x1000 31.494 ns/op 28.940 ns/op 1.09
Return object 10000 times 0.33360 ns/op 0.30030 ns/op 1.11
Throw Error 10000 times 3.5570 us/op 3.3739 us/op 1.05
toHex 178.87 ns/op 176.27 ns/op 1.01
Buffer.from 167.82 ns/op 163.55 ns/op 1.03
shared Buffer 101.25 ns/op 103.34 ns/op 0.98
fastMsgIdFn sha256 / 200 bytes 2.5100 us/op 2.3440 us/op 1.07
fastMsgIdFn h32 xxhash / 200 bytes 290.00 ns/op 287.00 ns/op 1.01
fastMsgIdFn h64 xxhash / 200 bytes 287.00 ns/op 288.00 ns/op 1.00
fastMsgIdFn sha256 / 1000 bytes 7.8680 us/op 7.4140 us/op 1.06
fastMsgIdFn h32 xxhash / 1000 bytes 440.00 ns/op 414.00 ns/op 1.06
fastMsgIdFn h64 xxhash / 1000 bytes 362.00 ns/op 351.00 ns/op 1.03
fastMsgIdFn sha256 / 10000 bytes 68.333 us/op 64.026 us/op 1.07
fastMsgIdFn h32 xxhash / 10000 bytes 2.0280 us/op 1.9210 us/op 1.06
fastMsgIdFn h64 xxhash / 10000 bytes 1.3120 us/op 1.2330 us/op 1.06
send data - 1000 256B messages 16.771 ms/op 13.525 ms/op 1.24
send data - 1000 512B messages 19.630 ms/op 17.269 ms/op 1.14
send data - 1000 1024B messages 29.721 ms/op 27.303 ms/op 1.09
send data - 1000 1200B messages 28.960 ms/op 19.474 ms/op 1.49
send data - 1000 2048B messages 37.892 ms/op 31.897 ms/op 1.19
send data - 1000 4096B messages 35.295 ms/op 31.012 ms/op 1.14
send data - 1000 16384B messages 78.491 ms/op 67.051 ms/op 1.17
send data - 1000 65536B messages 235.52 ms/op 199.23 ms/op 1.18
enrSubnets - fastDeserialize 64 bits 1.1720 us/op 1.0980 us/op 1.07
enrSubnets - ssz BitVector 64 bits 404.00 ns/op 372.00 ns/op 1.09
enrSubnets - fastDeserialize 4 bits 185.00 ns/op 162.00 ns/op 1.14
enrSubnets - ssz BitVector 4 bits 467.00 ns/op 372.00 ns/op 1.26
prioritizePeers score -10:0 att 32-0.1 sync 2-0 218.28 us/op 152.48 us/op 1.43
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 194.09 us/op 152.39 us/op 1.27
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 300.78 us/op 246.72 us/op 1.22
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 487.74 us/op 414.05 us/op 1.18
prioritizePeers score 0:0 att 64-1 sync 4-1 806.15 us/op 601.56 us/op 1.34
array of 16000 items push then shift 1.7580 us/op 1.6888 us/op 1.04
LinkedList of 16000 items push then shift 7.9480 ns/op 7.6010 ns/op 1.05
array of 16000 items push then pop 144.40 ns/op 125.49 ns/op 1.15
LinkedList of 16000 items push then pop 7.8670 ns/op 7.4100 ns/op 1.06
array of 24000 items push then shift 2.6193 us/op 2.4679 us/op 1.06
LinkedList of 24000 items push then shift 8.0900 ns/op 7.6400 ns/op 1.06
array of 24000 items push then pop 198.62 ns/op 166.54 ns/op 1.19
LinkedList of 24000 items push then pop 7.8000 ns/op 7.4470 ns/op 1.05
intersect bitArray bitLen 8 7.0450 ns/op 6.5870 ns/op 1.07
intersect array and set length 8 62.082 ns/op 46.634 ns/op 1.33
intersect bitArray bitLen 128 31.729 ns/op 29.705 ns/op 1.07
intersect array and set length 128 887.45 ns/op 687.28 ns/op 1.29
bitArray.getTrueBitIndexes() bitLen 128 2.3330 us/op 1.7350 us/op 1.34
bitArray.getTrueBitIndexes() bitLen 248 3.8880 us/op 3.5170 us/op 1.11
bitArray.getTrueBitIndexes() bitLen 512 9.0100 us/op 7.1450 us/op 1.26
Buffer.concat 32 items 1.0750 us/op 974.00 ns/op 1.10
Uint8Array.set 32 items 1.9830 us/op 1.6920 us/op 1.17
Buffer.copy 2.0780 us/op 1.9060 us/op 1.09
Uint8Array.set - with subarray 3.1600 us/op 2.8260 us/op 1.12
Uint8Array.set - without subarray 1.9430 us/op 1.5680 us/op 1.24
getUint32 - dataview 304.00 ns/op 264.00 ns/op 1.15
getUint32 - manual 230.00 ns/op 172.00 ns/op 1.34
Set add up to 64 items then delete first 3.0031 us/op 2.2436 us/op 1.34
OrderedSet add up to 64 items then delete first 4.1393 us/op 3.4037 us/op 1.22
Set add up to 64 items then delete last 3.1308 us/op 2.5686 us/op 1.22
OrderedSet add up to 64 items then delete last 4.3279 us/op 4.0455 us/op 1.07
Set add up to 64 items then delete middle 3.8066 us/op 2.6041 us/op 1.46
OrderedSet add up to 64 items then delete middle 6.7808 us/op 5.5001 us/op 1.23
Set add up to 128 items then delete first 6.5281 us/op 5.2212 us/op 1.25
OrderedSet add up to 128 items then delete first 9.1671 us/op 7.4580 us/op 1.23
Set add up to 128 items then delete last 5.4890 us/op 5.4177 us/op 1.01
OrderedSet add up to 128 items then delete last 7.9142 us/op 7.9275 us/op 1.00
Set add up to 128 items then delete middle 6.3056 us/op 4.9760 us/op 1.27
OrderedSet add up to 128 items then delete middle 17.947 us/op 13.781 us/op 1.30
Set add up to 256 items then delete first 13.208 us/op 10.782 us/op 1.23
OrderedSet add up to 256 items then delete first 18.278 us/op 15.661 us/op 1.17
Set add up to 256 items then delete last 12.078 us/op 10.499 us/op 1.15
OrderedSet add up to 256 items then delete last 17.457 us/op 15.875 us/op 1.10
Set add up to 256 items then delete middle 11.981 us/op 10.205 us/op 1.17
OrderedSet add up to 256 items then delete middle 44.717 us/op 40.557 us/op 1.10
transfer serialized Status (84 B) 1.5290 us/op 1.3640 us/op 1.12
copy serialized Status (84 B) 1.3040 us/op 1.2390 us/op 1.05
transfer serialized SignedVoluntaryExit (112 B) 1.9540 us/op 1.6320 us/op 1.20
copy serialized SignedVoluntaryExit (112 B) 1.4760 us/op 1.3280 us/op 1.11
transfer serialized ProposerSlashing (416 B) 2.7610 us/op 1.8810 us/op 1.47
copy serialized ProposerSlashing (416 B) 2.9230 us/op 1.9410 us/op 1.51
transfer serialized Attestation (485 B) 2.5590 us/op 1.8700 us/op 1.37
copy serialized Attestation (485 B) 2.8380 us/op 1.8110 us/op 1.57
transfer serialized AttesterSlashing (33232 B) 3.3350 us/op 2.2660 us/op 1.47
copy serialized AttesterSlashing (33232 B) 8.2950 us/op 5.4710 us/op 1.52
transfer serialized Small SignedBeaconBlock (128000 B) 3.4360 us/op 3.2060 us/op 1.07
copy serialized Small SignedBeaconBlock (128000 B) 22.642 us/op 19.032 us/op 1.19
transfer serialized Avg SignedBeaconBlock (200000 B) 5.2330 us/op 4.5530 us/op 1.15
copy serialized Avg SignedBeaconBlock (200000 B) 29.548 us/op 27.905 us/op 1.06
transfer serialized BlobsSidecar (524380 B) 4.9960 us/op 3.1540 us/op 1.58
copy serialized BlobsSidecar (524380 B) 124.78 us/op 82.555 us/op 1.51
transfer serialized Big SignedBeaconBlock (1000000 B) 4.4990 us/op 2.6440 us/op 1.70
copy serialized Big SignedBeaconBlock (1000000 B) 156.63 us/op 222.11 us/op 0.71
pass gossip attestations to forkchoice per slot 2.9947 ms/op 2.8148 ms/op 1.06
forkChoice updateHead vc 100000 bc 64 eq 0 466.41 us/op 444.89 us/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 0 3.4384 ms/op 2.8132 ms/op 1.22
forkChoice updateHead vc 1000000 bc 64 eq 0 5.2162 ms/op 4.8467 ms/op 1.08
forkChoice updateHead vc 600000 bc 320 eq 0 2.9686 ms/op 2.8516 ms/op 1.04
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9740 ms/op 2.8909 ms/op 1.03
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9879 ms/op 3.3225 ms/op 1.20
forkChoice updateHead vc 600000 bc 64 eq 1000 10.644 ms/op 10.344 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 11.015 ms/op 10.717 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 300000 13.912 ms/op 13.503 ms/op 1.03
computeDeltas 500000 validators 300 proto nodes 4.4266 ms/op 3.9685 ms/op 1.12
computeDeltas 500000 validators 1200 proto nodes 4.6705 ms/op 3.9902 ms/op 1.17
computeDeltas 500000 validators 7200 proto nodes 4.5599 ms/op 4.1140 ms/op 1.11
computeDeltas 750000 validators 300 proto nodes 7.6509 ms/op 5.9279 ms/op 1.29
computeDeltas 750000 validators 1200 proto nodes 8.2918 ms/op 5.9474 ms/op 1.39
computeDeltas 750000 validators 7200 proto nodes 7.3687 ms/op 5.9845 ms/op 1.23
computeDeltas 1400000 validators 300 proto nodes 13.626 ms/op 11.322 ms/op 1.20
computeDeltas 1400000 validators 1200 proto nodes 12.774 ms/op 11.371 ms/op 1.12
computeDeltas 1400000 validators 7200 proto nodes 12.452 ms/op 11.196 ms/op 1.11
computeDeltas 2100000 validators 300 proto nodes 18.029 ms/op 17.038 ms/op 1.06
computeDeltas 2100000 validators 1200 proto nodes 17.464 ms/op 16.589 ms/op 1.05
computeDeltas 2100000 validators 7200 proto nodes 17.328 ms/op 16.361 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei normalcase 2.8289 ms/op 1.9029 ms/op 1.49
altair processAttestation - 250000 vs - 7PWei worstcase 3.1537 ms/op 2.5582 ms/op 1.23
altair processAttestation - setStatus - 1/6 committees join 90.036 us/op 87.042 us/op 1.03
altair processAttestation - setStatus - 1/3 committees join 180.78 us/op 181.14 us/op 1.00
altair processAttestation - setStatus - 1/2 committees join 271.00 us/op 243.90 us/op 1.11
altair processAttestation - setStatus - 2/3 committees join 348.29 us/op 319.95 us/op 1.09
altair processAttestation - setStatus - 4/5 committees join 514.29 us/op 448.97 us/op 1.15
altair processAttestation - setStatus - 100% committees join 596.31 us/op 543.43 us/op 1.10
altair processBlock - 250000 vs - 7PWei normalcase 5.6609 ms/op 5.8064 ms/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.171 ms/op 25.345 ms/op 1.15
altair processBlock - 250000 vs - 7PWei worstcase 38.710 ms/op 31.729 ms/op 1.22
altair processBlock - 250000 vs - 7PWei worstcase hashState 87.588 ms/op 61.498 ms/op 1.42
phase0 processBlock - 250000 vs - 7PWei normalcase 3.8796 ms/op 1.6901 ms/op 2.30
phase0 processBlock - 250000 vs - 7PWei worstcase 28.880 ms/op 19.515 ms/op 1.48
altair processEth1Data - 250000 vs - 7PWei normalcase 400.21 us/op 312.05 us/op 1.28
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.9410 us/op 5.2620 us/op 1.70
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 48.412 us/op 34.342 us/op 1.41
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.235 us/op 8.6090 us/op 1.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.5300 us/op 5.5600 us/op 1.35
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 193.44 us/op 128.74 us/op 1.50
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3694 ms/op 1.0314 ms/op 1.33
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9313 ms/op 1.5189 ms/op 1.27
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9002 ms/op 1.4575 ms/op 1.30
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9040 ms/op 3.6539 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6267 ms/op 1.5573 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.9468 ms/op 3.8880 ms/op 1.02
Tree 40 250000 create 238.22 ms/op 214.76 ms/op 1.11
Tree 40 250000 get(125000) 159.14 ns/op 148.03 ns/op 1.08
Tree 40 250000 set(125000) 738.73 ns/op 732.45 ns/op 1.01
Tree 40 250000 toArray() 19.256 ms/op 20.196 ms/op 0.95
Tree 40 250000 iterate all - toArray() + loop 19.441 ms/op 17.037 ms/op 1.14
Tree 40 250000 iterate all - get(i) 58.228 ms/op 50.518 ms/op 1.15
Array 250000 create 3.4734 ms/op 2.9219 ms/op 1.19
Array 250000 clone - spread 1.5552 ms/op 1.3226 ms/op 1.18
Array 250000 get(125000) 0.44900 ns/op 0.42200 ns/op 1.06
Array 250000 set(125000) 0.48200 ns/op 0.47100 ns/op 1.02
Array 250000 iterate all - loop 90.756 us/op 105.36 us/op 0.86
phase0 afterProcessEpoch - 250000 vs - 7PWei 53.221 ms/op 49.106 ms/op 1.08
Array.fill - length 1000000 3.7361 ms/op 3.2852 ms/op 1.14
Array push - length 1000000 18.737 ms/op 16.757 ms/op 1.12
Array.get 0.30300 ns/op 0.27177 ns/op 1.11
Uint8Array.get 0.48080 ns/op 0.42495 ns/op 1.13
phase0 beforeProcessEpoch - 250000 vs - 7PWei 18.115 ms/op 15.898 ms/op 1.14
altair processEpoch - mainnet_e81889 307.53 ms/op 283.49 ms/op 1.08
mainnet_e81889 - altair beforeProcessEpoch 19.574 ms/op 18.433 ms/op 1.06
mainnet_e81889 - altair processJustificationAndFinalization 13.338 us/op 12.057 us/op 1.11
mainnet_e81889 - altair processInactivityUpdates 5.6260 ms/op 5.5356 ms/op 1.02
mainnet_e81889 - altair processRewardsAndPenalties 41.946 ms/op 34.793 ms/op 1.21
mainnet_e81889 - altair processRegistryUpdates 2.2570 us/op 1.8780 us/op 1.20
mainnet_e81889 - altair processSlashings 512.00 ns/op 417.00 ns/op 1.23
mainnet_e81889 - altair processEth1DataReset 536.00 ns/op 322.00 ns/op 1.66
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7826 ms/op 1.3700 ms/op 1.30
mainnet_e81889 - altair processSlashingsReset 4.4170 us/op 4.2280 us/op 1.04
mainnet_e81889 - altair processRandaoMixesReset 6.7130 us/op 4.2280 us/op 1.59
mainnet_e81889 - altair processHistoricalRootsUpdate 563.00 ns/op 517.00 ns/op 1.09
mainnet_e81889 - altair processParticipationFlagUpdates 2.0250 us/op 1.9420 us/op 1.04
mainnet_e81889 - altair processSyncCommitteeUpdates 252.00 ns/op 401.00 ns/op 0.63
mainnet_e81889 - altair afterProcessEpoch 54.345 ms/op 50.178 ms/op 1.08
capella processEpoch - mainnet_e217614 1.0573 s/op 1.0220 s/op 1.03
mainnet_e217614 - capella beforeProcessEpoch 76.921 ms/op 64.682 ms/op 1.19
mainnet_e217614 - capella processJustificationAndFinalization 14.957 us/op 15.222 us/op 0.98
mainnet_e217614 - capella processInactivityUpdates 18.529 ms/op 15.879 ms/op 1.17
mainnet_e217614 - capella processRewardsAndPenalties 242.60 ms/op 216.90 ms/op 1.12
mainnet_e217614 - capella processRegistryUpdates 17.886 us/op 11.935 us/op 1.50
mainnet_e217614 - capella processSlashings 609.00 ns/op 348.00 ns/op 1.75
mainnet_e217614 - capella processEth1DataReset 457.00 ns/op 308.00 ns/op 1.48
mainnet_e217614 - capella processEffectiveBalanceUpdates 11.694 ms/op 12.134 ms/op 0.96
mainnet_e217614 - capella processSlashingsReset 5.6280 us/op 2.9550 us/op 1.90
mainnet_e217614 - capella processRandaoMixesReset 9.9690 us/op 4.0780 us/op 2.44
mainnet_e217614 - capella processHistoricalRootsUpdate 543.00 ns/op 498.00 ns/op 1.09
mainnet_e217614 - capella processParticipationFlagUpdates 2.1620 us/op 1.8180 us/op 1.19
mainnet_e217614 - capella afterProcessEpoch 127.99 ms/op 120.14 ms/op 1.07
phase0 processEpoch - mainnet_e58758 349.29 ms/op 339.14 ms/op 1.03
mainnet_e58758 - phase0 beforeProcessEpoch 75.305 ms/op 72.867 ms/op 1.03
mainnet_e58758 - phase0 processJustificationAndFinalization 13.075 us/op 15.301 us/op 0.85
mainnet_e58758 - phase0 processRewardsAndPenalties 32.345 ms/op 29.402 ms/op 1.10
mainnet_e58758 - phase0 processRegistryUpdates 7.9620 us/op 7.7050 us/op 1.03
mainnet_e58758 - phase0 processSlashings 320.00 ns/op 347.00 ns/op 0.92
mainnet_e58758 - phase0 processEth1DataReset 305.00 ns/op 366.00 ns/op 0.83
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5534 ms/op 1.1944 ms/op 1.30
mainnet_e58758 - phase0 processSlashingsReset 3.4760 us/op 3.4230 us/op 1.02
mainnet_e58758 - phase0 processRandaoMixesReset 4.2230 us/op 3.7040 us/op 1.14
mainnet_e58758 - phase0 processHistoricalRootsUpdate 354.00 ns/op 297.00 ns/op 1.19
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.0480 us/op 2.9940 us/op 1.02
mainnet_e58758 - phase0 afterProcessEpoch 43.617 ms/op 41.917 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.6386 ms/op 1.3928 ms/op 1.89
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.4481 ms/op 2.3783 ms/op 1.03
altair processInactivityUpdates - 250000 normalcase 21.439 ms/op 14.981 ms/op 1.43
altair processInactivityUpdates - 250000 worstcase 19.749 ms/op 15.010 ms/op 1.32
phase0 processRegistryUpdates - 250000 normalcase 9.1290 us/op 5.8030 us/op 1.57
phase0 processRegistryUpdates - 250000 badcase_full_deposits 461.35 us/op 222.01 us/op 2.08
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.89 ms/op 104.72 ms/op 1.29
altair processRewardsAndPenalties - 250000 normalcase 48.933 ms/op 30.106 ms/op 1.63
altair processRewardsAndPenalties - 250000 worstcase 49.373 ms/op 36.437 ms/op 1.36
phase0 getAttestationDeltas - 250000 normalcase 7.4047 ms/op 6.9900 ms/op 1.06
phase0 getAttestationDeltas - 250000 worstcase 7.1614 ms/op 6.9305 ms/op 1.03
phase0 processSlashings - 250000 worstcase 122.37 us/op 76.705 us/op 1.60
altair processSyncCommitteeUpdates - 250000 123.12 ms/op 117.36 ms/op 1.05
BeaconState.hashTreeRoot - No change 223.00 ns/op 258.00 ns/op 0.86
BeaconState.hashTreeRoot - 1 full validator 158.13 us/op 122.00 us/op 1.30
BeaconState.hashTreeRoot - 32 full validator 1.3997 ms/op 1.4034 ms/op 1.00
BeaconState.hashTreeRoot - 512 full validator 11.706 ms/op 9.0865 ms/op 1.29
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 157.13 us/op 123.58 us/op 1.27
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.3200 ms/op 1.5124 ms/op 1.53
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.872 ms/op 22.417 ms/op 1.15
BeaconState.hashTreeRoot - 1 balances 139.31 us/op 88.375 us/op 1.58
BeaconState.hashTreeRoot - 32 balances 1.2181 ms/op 837.26 us/op 1.45
BeaconState.hashTreeRoot - 512 balances 10.654 ms/op 7.6953 ms/op 1.38
BeaconState.hashTreeRoot - 250000 balances 195.23 ms/op 167.88 ms/op 1.16
aggregationBits - 2048 els - zipIndexesInBitList 22.762 us/op 46.494 us/op 0.49
byteArrayEquals 32 52.105 ns/op 54.998 ns/op 0.95
Buffer.compare 32 17.771 ns/op 16.872 ns/op 1.05
byteArrayEquals 1024 1.5900 us/op 1.5492 us/op 1.03
Buffer.compare 1024 26.095 ns/op 24.852 ns/op 1.05
byteArrayEquals 16384 25.320 us/op 24.642 us/op 1.03
Buffer.compare 16384 201.99 ns/op 200.25 ns/op 1.01
byteArrayEquals 123687377 194.77 ms/op 186.36 ms/op 1.05
Buffer.compare 123687377 7.8550 ms/op 6.0616 ms/op 1.30
byteArrayEquals 32 - diff last byte 53.973 ns/op 51.453 ns/op 1.05
Buffer.compare 32 - diff last byte 17.909 ns/op 17.051 ns/op 1.05
byteArrayEquals 1024 - diff last byte 1.6242 us/op 1.5802 us/op 1.03
Buffer.compare 1024 - diff last byte 33.470 ns/op 24.890 ns/op 1.34
byteArrayEquals 16384 - diff last byte 26.011 us/op 25.174 us/op 1.03
Buffer.compare 16384 - diff last byte 194.26 ns/op 201.68 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 203.34 ms/op 187.06 ms/op 1.09
Buffer.compare 123687377 - diff last byte 12.951 ms/op 6.4409 ms/op 2.01
byteArrayEquals 32 - random bytes 6.3230 ns/op 5.0780 ns/op 1.25
Buffer.compare 32 - random bytes 24.195 ns/op 16.796 ns/op 1.44
byteArrayEquals 1024 - random bytes 5.9680 ns/op 5.0420 ns/op 1.18
Buffer.compare 1024 - random bytes 27.366 ns/op 16.782 ns/op 1.63
byteArrayEquals 16384 - random bytes 6.6320 ns/op 5.0460 ns/op 1.31
Buffer.compare 16384 - random bytes 24.321 ns/op 16.930 ns/op 1.44
byteArrayEquals 123687377 - random bytes 7.9500 ns/op 6.3900 ns/op 1.24
Buffer.compare 123687377 - random bytes 25.340 ns/op 18.170 ns/op 1.39
regular array get 100000 times 48.422 us/op 33.013 us/op 1.47
wrappedArray get 100000 times 55.958 us/op 32.552 us/op 1.72
arrayWithProxy get 100000 times 20.126 ms/op 13.081 ms/op 1.54
ssz.Root.equals 54.783 ns/op 45.150 ns/op 1.21
byteArrayEquals 52.791 ns/op 44.493 ns/op 1.19
Buffer.compare 12.833 ns/op 10.150 ns/op 1.26
processSlot - 1 slots 23.828 us/op 13.188 us/op 1.81
processSlot - 32 slots 4.2390 ms/op 2.9112 ms/op 1.46
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 55.334 ms/op 36.615 ms/op 1.51
getCommitteeAssignments - req 1 vs - 250000 vc 2.4197 ms/op 2.0394 ms/op 1.19
getCommitteeAssignments - req 100 vs - 250000 vc 4.8131 ms/op 3.9935 ms/op 1.21
getCommitteeAssignments - req 1000 vs - 250000 vc 5.0437 ms/op 4.2468 ms/op 1.19
findModifiedValidators - 10000 modified validators 570.29 ms/op 240.57 ms/op 2.37
findModifiedValidators - 1000 modified validators 539.68 ms/op 165.93 ms/op 3.25
findModifiedValidators - 100 modified validators 354.69 ms/op 146.62 ms/op 2.42
findModifiedValidators - 10 modified validators 423.61 ms/op 141.86 ms/op 2.99
findModifiedValidators - 1 modified validators 425.03 ms/op 137.65 ms/op 3.09
findModifiedValidators - no difference 372.78 ms/op 145.45 ms/op 2.56
compare ViewDUs 6.3982 s/op 2.8751 s/op 2.23
compare each validator Uint8Array 2.3392 s/op 1.6409 s/op 1.43
compare ViewDU to Uint8Array 1.4211 s/op 937.43 ms/op 1.52
migrate state 1000000 validators, 24 modified, 0 new 968.16 ms/op 729.44 ms/op 1.33
migrate state 1000000 validators, 1700 modified, 1000 new 1.3072 s/op 967.07 ms/op 1.35
migrate state 1000000 validators, 3400 modified, 2000 new 1.5221 s/op 1.1626 s/op 1.31
migrate state 1500000 validators, 24 modified, 0 new 957.05 ms/op 713.82 ms/op 1.34
migrate state 1500000 validators, 1700 modified, 1000 new 1.2691 s/op 946.18 ms/op 1.34
migrate state 1500000 validators, 3400 modified, 2000 new 1.4617 s/op 1.1576 s/op 1.26
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.6700 ns/op 4.1800 ns/op 1.36
state getBlockRootAtSlot - 250000 vs - 7PWei 855.12 ns/op 693.33 ns/op 1.23
computeProposers - vc 250000 11.167 ms/op 6.6118 ms/op 1.69
computeEpochShuffling - vc 250000 50.548 ms/op 40.555 ms/op 1.25
getNextSyncCommittee - vc 250000 205.21 ms/op 116.23 ms/op 1.77
computeSigningRoot for AttestationData 32.197 us/op 22.905 us/op 1.41
hash AttestationData serialized data then Buffer.toString(base64) 1.9179 us/op 1.5285 us/op 1.25
toHexString serialized data 1.3500 us/op 837.86 ns/op 1.61
Buffer.toString(base64) 265.18 ns/op 181.12 ns/op 1.46
nodejs block root to RootHex using toHex 197.87 ns/op 175.36 ns/op 1.13
nodejs block root to RootHex using toRootHex 123.65 ns/op 88.733 ns/op 1.39
browser block root to RootHex using the deprecated toHexString 420.33 ns/op 217.99 ns/op 1.93
browser block root to RootHex using toHex 312.71 ns/op 174.69 ns/op 1.79
browser block root to RootHex using toRootHex 252.57 ns/op 156.66 ns/op 1.61

by benchmarkbot/action

@philknows
Copy link
Member

Included for alpha.10

@@ -284,4 +288,20 @@ Will double processing times. Use only for debugging purposes.",
default: defaultOptions.chain.maxCPStateEpochsInMemory,
group: "chain",
},

"chain.targetBlobsPerBlock": {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these values will be part of spec config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Electra: Implement EIP7742: uncouple blob limits per block across CL and EL
3 participants